package br.com.localfloripa.entities;

import java.io.Serializable;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

@Entity
@Table(name="endereco")
public class Endereco implements Serializable {
	
	private static final long serialVersionUID = -3414124330941237124L;
	
	@SequenceGenerator(name="Endereco_Seq",sequenceName="endereco_seq")
	@Id @GeneratedValue(generator="Endereco_Seq")
	private Long id;
	@Column(name="rua",nullable=true)
	private String rua;
	@Column(name="numero",nullable=true)
	private Integer numero;
	@Column(name="complemento",nullable=true)
	private String complemento;
	@Column(name="cep",nullable=true)
	private String cep;
	@Column(name="bairro",nullable=false)
	private String bairro;
	@Column(name="edificio",nullable=true)
	private String edificio;	
	/** Gelolocation - latitude **/	
	@Column(name="latitude",nullable=true)
	private Double latitude;
	/** Gelolocation - longitude **/
	@Column(name="longitude",nullable=true)
	private Double longitude;	
	@ManyToOne
	@JoinColumn(name="municipio_id",referencedColumnName="id")
	private Municipio municipio;
	@OneToMany(mappedBy="endereco",fetch=FetchType.LAZY)
	private List<Empresa> empresas;
	
	public Endereco() {
		this.municipio = new Municipio();
	}
	public String getRua() {
		return rua;
	}
	public void setRua(String rua) {
		this.rua = rua;
	}
	public Integer getNumero() {
		return numero;
	}
	public void setNumero(Integer numero) {
		this.numero = numero;
	}
	public String getComplemento() {
		return complemento;
	}
	public void setComplemento(String complemento) {
		this.complemento = complemento;
	}
	public String getCep() {
		return cep;
	}
	public void setCep(String cep) {
		this.cep = cep;
	}
	public String getBairro() {
		return bairro;
	}
	public void setBairro(String bairro) {
		this.bairro = bairro;
	}
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
	public Municipio getMunicipio() {
		return municipio;
	}
	public void setMunicipio(Municipio municipio) {
		this.municipio = municipio;
	}
	public List<Empresa> getEmpresas() {
		return empresas;
	}
	public void setEmpresas(List<Empresa> empresas) {
		this.empresas = empresas;
	}
	public String getEdificio() {
		return edificio;
	}
	public void setEdificio(String edificio) {
		this.edificio = edificio;
	}
	public Double getLatitude() {
		return latitude;
	}
	public void setLatitude(Double latitude) {
		this.latitude = latitude;
	}
	public Double getLongitude() {
		return longitude;
	}
	public void setLongitude(Double longitude) {
		this.longitude = longitude;
	}
	
}
